package logika;

/* Soubor je ulozen v kodovani UTF-8.
 * Kontrola kódování: Příliš žluťoučký kůň úpěl ďábelské ódy. */

/*******************************************************************************
 * Příkaz zahoď slouží pro zahození nepotřebné věci z batohu.
 *
 * @author    Tomáš Koválik
 * @version   1.0
 */
public class PrikazZahod implements IPrikaz
{
    //== Datové atributy (statické i instancí)======================================
    private static final String NAZEV ="zahod";
    private HerniPlan plan;

    //== Konstruktory a tovární metody =============================================

    /***************************************************************************
     *  Konstruktor třídy.
     *  
     *  @param    plan, odkaz na třídu HerniPlan.
     */
    public PrikazZahod(HerniPlan plan)
    {
        this.plan = plan;
    }

    //== Nesoukromé metody (instancí i třídy) ======================================
    /**
     * Metoda provádí příkaz zahoď, který slouží k uvolnění místa v batohu.
     * Pokud není zadán parametr tak se nic nevyhodí. Jinak pokud batoh opravdu věc neobsahuje tak jí odebere z batohu
     * a vloží do místnosti
     * 
     */ 
    public String proved(String... parametry){
        if(parametry.length == 0){
            return "Co mám zahodit??";
        }
        String jmenoVeci = parametry[0];
        Batoh batoh = plan.getBatoh();
        Prostor aktProstor = plan.getAktualniProstor();
        Vec vec = batoh.najdiVecVMistnosti(jmenoVeci);
        if (batoh.obsahujeVec(jmenoVeci)){
            batoh.odeberVec(jmenoVeci);
            aktProstor.vlozVec(vec);
            return "Tak a mám o jedno místo v batohu více...";
        }
        else {
            return "Jdi do prdele";
        }
    }

    /**
     *  Metoda vrací název příkazu (slovo které používá hráč pro jeho vyvolání)
     *  
     *  @ return nazev prikazu
     */
    @Override
    public String getNazev() {
        return NAZEV;
    }
    //== Soukromé metody (instancí i třídy) ========================================

}